package com.tz.crm.dao;

import com.tz.crm.entity.Payment;

import java.util.List;

/**
 * 付款计划接口
 */
public interface PaymentDao extends BaseDao<Payment, String> {

    /**
     * 根据合同id查询付款计划列表
     *
     * @param id 合同id
     * @return 付款计划列表
     */
    List<Payment> getByContractId(String id);

    /**
     * 根据 awayMonth 月份获得已支付款项总额
     *
     * @param awayMonth awayMonth
     * @return 已支付款项总额
     */
    double getSumPaidMoney(int awayMonth);

    /**
     * 根据 awayMonth 月份获得未支付款项总额
     *
     * @param awayMonth awayMonth
     * @return 未支付款项总额
     */
    double getSumUnpaidMoney(int awayMonth);

    /**
     * 根据查询条件，获得 Payment 列表
     *
     * @param payment 查询条件
     * @return Payment 列表
     */
    //todo: trim
    List<Payment> search(Payment payment);
}
